Increasingly, information is being moved over networks, such as the Internet, to conduct affairs of individuals, governments, and enterprises. Devices are more powerful and mobile, such that network connectivity can be acquired from nearly any spot on the globe on demand by any individual.
Information access has largely been successful because of the advent of the World-Wide Web (WWW) and the communication techniques associated therewith. One such popular communication architecture and technique for WWW communications is a Representational State Transfer (REST) interface.
A REST interface is an architectural style and communication technique deployed for clients and servers to interact with one another over the Internet. Clients initiate requests that are processed by servers and responses are returned from the servers to the clients. Requests are in the form of nouns (resource identifiers) and verbs (actions) that are to be taken on the nouns. The vocabulary for the verbs are constrained to a few universal verbs, such as GET, PUT, POST, and DELETE. The nouns are used for uniquely identifying a resource over the Internet, such as by an Internet Protocol (IP) Address in the form of a Uniform Resource Locator (URL) link or Uniform Resource Identifier (URI).
Conversely, other WWW protocols exist that give greater customized control over the actions used by developers; one such popular protocol is the Simple Object Access Protocol (SOAP).
More feature/function can be achieved with greater developer control when actions (verbs) can be user-defined for any given situation. However, with the increased feature/function comes the loss of interoperability. That is, two or more resources (nouns) are harder to seamlessly interface with one another over the Internet when the potential actions (verbs) increase and are not controlled. Enterprises appear to prefer ease of integration over increased feature/function.
Thus, REST interfaces are growing in the industry at significant rates. Some suggest that over 80% of major WWW providers offer REST as a means to interface with their assets over the Internet. REST is in fact replacing SOAP-based services as the preferred architecture of enterprises. One main reason for this is that the Application Programming Interface (API) for REST is easy to understand, constrained, and simple to use. This simplicity of integration also has some drawbacks.
For example, because REST interfaces are simplistic: the security with REST interfaces is limited; the auditing with REST interfaces is difficult to achieve; and the merging of multiple REST interfaces to interoperate with one another takes customized programming to achieve.
Accordingly, what is needed is improved flexibility with REST interface architectures.